home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1995 October / Amiga-CD 1995 #10.iso / amiga-magazin / farbdithering / listing1 < prev    next >
Text File  |  1995-08-30  |  791b  |  27 lines

  1. void DitherMatrixBinary(Picture *Pic,Matrix *Matr)
  2. { LONG x,y,t,v,index,pixel;
  3.  
  4.   for(y = 0 ; y < Pic -> Height ; y++)
  5.   { for(x = 0 ; x < Pic -> Width ; x++)
  6.     {
  7.       // Position des Pixels bestimmen
  8.       index = x + y * Pic -> Width;
  9.  
  10.       // Helligkeitswert berechnen (0 = Minimum, 255 = Maximum)
  11.       v = (Pic -> Red[index] + Pic -> Green[index] +
  12.            Pic -> Blue[index]) / 3;
  13.  
  14.       // Den zugehörigen Schwellwert der Matrix entnehmen
  15.       t = Matr -> Rows[y % Matr -> Width][x % Matr -> Height];
  16.  
  17.       // Ist die Helligkeit kleiner als der Schwellwert, wird
  18.       // ein schwarzes Pixel erzeugt, sonst ein weißes
  19.       if (v < t)  pixel = 0;
  20.       else        pixel = 255;
  21.  
  22.       // Das Pixel wird gesetzt
  23.       SetAPen(RPort,pixel);  WritePixel(RPort,x,y);
  24.     }
  25.   }
  26. }
  27.